using System.Collections.Generic;
using System.Xml.Schema;
using System.Xml.Serialization;
using SWD = System.Web.Services.Description;

namespace MockingBird.Wsdl.Parser.Interfaces
{
    public interface IWsdlDescriptor
    {
        /// <summary>
        /// Gets the service name
        /// </summary>
        string ServiceName { get; }
        /// <summary>
        /// Gets all the available endpoints. 
        /// </summary>
        List<Endpoint> Endpoints { get; }
        SWD.BindingCollection Bindings { get; }
        List<string> InterfaceNames { get; }
        List<Operation> Operations { get; }
        List<string> OperationNames { get; }
        XmlSchemas Schemas { get; }
        XmlSchemaSet SchemaSet { get; }
        /// <summary>
        /// Gets an operation from the collection of operations
        /// </summary>
        /// <param name="operationName">the name of the operation we are looking for</param>
        /// <returns>Operation</returns>
        Operation FindOperation(string operationName);
        OperationMessage FindMessage(string messageName);
    }
}
